// 对象数组转为对象    
const array = [
    {
    code: 101,
    name: '北京',
    },
    {
    code: 102,
    name: '石家庄',
    },
    {
    code: 102,
    name: '江苏',
    children: [{
        code: 102,
        name: '南京',
    },{
        code: 102,
        name: '连云港',
    }]
    }
]  

// { // '北京'：{ // code: 101, // name: '北京' // }, // '石家庄':{ // code: 102 // name: '石家庄' // }, // '南京':{ // code: 102 // name: '南京' // }, // '连云港':{ // code: 102 // name: '连云港' // } // }  

function zhuan(arr) {
    const  res = {} ;
    let res2;
    for(let i = 0;i < arr.length;i++) {
            if(Array.isArray(arr[i].children)){
            // console.log(arr[i])  
            // console.log(arr[i].children)
          res2 = zhuan(arr[i].children)
            // Object.assign({},res, zhuan(arr[i].children))
        }else{
            let name = arr[i].name
            res[name] = arr[i]
        }
       
    }
    // console.log( Object.assign({},res, res2))
    return Object.assign({},res, res2);
}

console.log(zhuan(array))